使用PBFunc在Powerbuilder中支付寶當面付款功能
在PB實現(xiàn)支付寶當面付的功能,需要先在支付寶進行商戶簽約,并設(shè)置相關(guān)的公鑰信息(具體參考支付寶文檔)。
然后使用對應(yīng)的私鑰文件對參數(shù)進RSAWithSha1前面計算。具體代碼如下:
string ls_pubFileName,ls_priFileName
n_pbfunc_cryp lnv_cryp
ls_priFileName ="D:\pbfunclib_pri.pem"http://私鑰文件
string ls_str
string ls_appId,ls_secret,ls_biz_content
ls_appId ="3434343"http://改成你的appid
ls_biz_content='{"out_trade_no": "2015020011","scene": "bar_code","auth_code": "'+sle_1.Text+'","subject": "當面付條碼支付","total_amount": "0.01"}'
ls_str ="app_id="+ls_appId
ls_str +='&biz_content='+ls_biz_content
ls_str +='&charset=utf-8'
ls_str +='&method=alipay.trade.pay'
ls_str +='&sign_type=RSA'
ls_str +='×tamp=2016-05-08 11:27:15'
ls_str +='&version=1.0'
string ls_sigStr
blob utf8R
utf8R =lnv_cryp.of_str2utf8(ls_str)
if lnv_cryp.of_sha1withRsa(ls_priFileName,utf8R,lnv_cryp.HASH_RESULT_DEFAULT,ls_sigStr) then
MessageBox("提示","簽名成功:"+ls_sigStr)
Else
MessageBox("提示","簽名失敗")
end if
/*驗證簽名可以不需要調(diào)用*/
ls_pubFileName ="D:\pbfunclib_pub.pem"http://在D盤生成公鑰文件pbfunclib_pub.pem
IF Not lnv_cryp.of_RSAVerifyFileSHA1(ls_pubFileName,utf8R,ls_sigStr,lnv_cryp.HASH_RESULT_DEFAULT) Then
MessageBox("提示","驗證簽名失敗")
else
messagebox("","驗證簽名成功")
End IF
//ls_str +=''
n_pbfunc_http lnv_http
lnv_http.of_clear()//清空參數(shù)
string ls_data
ls_data = "app_id="+wf_alipay_urlencode(ls_appId)
ls_data += "&biz_content="+wf_alipay_urlencode(ls_biz_content)
ls_data += "&charset="+wf_alipay_urlencode("utf-8")
ls_data += "&method="+wf_alipay_urlencode("alipay.trade.pay")
ls_data += "&sign_type="+wf_alipay_urlencode("RSA")
ls_data += "&sign="+wf_alipay_urlencode(ls_sigStr)
ls_data += "×tamp="+wf_alipay_urlencode("2016-05-08 11:27:15")
ls_data += "&version="+wf_alipay_urlencode("1.0")
lnv_http.of_set_URL("https://openapi.alipay.com/gateway.do?"+ls_data)
Blob lblb_data
string ls_error
IF lnv_http.of_post(lblb_data,ls_error) Then
string gbkData
gbkData = lnv_cryp.of_utf8ToGbk(lblb_data)//由于返回來的是utf-8編碼,直接顯示會亂碼
MessageBox("提示",gbkData+" "+string(lblb_data))
Else
MessageBox("提示","執(zhí)行失敗")
End IF
其中wf_alipay_urlencode函數(shù)代碼如下:
//ls_str為參數(shù) n_pbfunc_encode lnv_encode string ls_content,ls_reserved//指明不需要編碼的字符 ls_reserved =""http://都需要編碼 string ls_sigStr blob utf8R utf8R =lnv_encode.of_str2utf8(ls_str) lnv_encode.of_URIEncode2(utf8R,ls_content) return ls_content
以上所述是小編給大家介紹的使用PBFunc在Powerbuilder中支付寶當面付款功能,希望對大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會及時回復(fù)的。
相關(guān)文章
JavaScript最完整的深淺拷貝實現(xiàn)方式詳解
這篇文章主要為大家詳細介紹了JavaScript最完整的深淺拷貝實現(xiàn)方式,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助2022-02-02
UniApp使用vue.config.js進行配置的詳細教程
這篇文章主要給大家介紹了關(guān)于UniApp使用vue.config.js進行配置的詳細教程,uniapp是一套基于Vue語法的框架,同樣也支持Vue.config.js配置,一般常用的莫過于路徑的名稱,需要的朋友可以參考下2023-10-10
js使用xml數(shù)據(jù)載體實現(xiàn)城市省份二級聯(lián)動效果
這篇文章主要為大家詳細介紹了js使用xml數(shù)據(jù)載體實現(xiàn)城市省份二級聯(lián)動效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-11-11
JS實現(xiàn)將對象轉(zhuǎn)化為數(shù)組的方法分析
這篇文章主要介紹了JS實現(xiàn)將對象轉(zhuǎn)化為數(shù)組的方法,結(jié)合實例形式分析了javascript操作及轉(zhuǎn)換json數(shù)組相關(guān)實現(xiàn)技巧,需要的朋友可以參考下2019-01-01

