使用PBFunc在Powerbuilder中支付宝当面付款功能


Posted in Javascript onOctober 01, 2016

在PB实现支付宝当面付的功能,需要先在支付宝进行商户签约,并设置相关的公钥信息(具体参考支付宝文档)。

然后使用对应的私钥文件对参数进RSAWithSha1前面计算。具体代码如下:

string ls_pubFileName,ls_priFileName
n_pbfunc_cryp lnv_cryp
ls_priFileName ="D:\pbfunclib_pri.pem"//私钥文件
string ls_str
string ls_appId,ls_secret,ls_biz_content
ls_appId ="3434343"//改成你的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
/*验证签名可以不需要调用*/
ls_pubFileName ="D:\pbfunclib_pub.pem"//在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()//清空参数
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("提示","执行失败")
End IF

其中wf_alipay_urlencode函数代码如下:

//ls_str为参数
n_pbfunc_encode lnv_encode
string ls_content,ls_reserved//指明不需要编码的字符
ls_reserved =""//都需要编码
string ls_sigStr
blob utf8R
utf8R =lnv_encode.of_str2utf8(ls_str)
lnv_encode.of_URIEncode2(utf8R,ls_content)
return ls_content

以上所述是小编给大家介绍的使用PBFunc在Powerbuilder中支付宝当面付款功能,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复的。

Javascript 相关文章推荐
JQuery UI皮肤定制
Jul 27 Javascript
js报错 Object doesn't support this property or method的原因分析
Mar 31 Javascript
Jquery css函数用法(判断标签是否拥有某属性)
May 28 Javascript
原生js实现改变随意改变div属性style的名称和值的结果
Sep 26 Javascript
jQuery中$.click()无效问题分析
Jan 29 Javascript
js HTML5多图片上传及预览实例解析(不含前端的文件分割)
Aug 26 Javascript
详解ES6中的let命令
Apr 05 Javascript
详解jQuery中ajax.load()方法
Jan 25 Javascript
jQuery插件autocomplete使用详解
Feb 04 Javascript
vue组件 $children,$refs,$parent的使用详解
Jul 31 Javascript
Vue实战之vue登录验证的实现代码
Oct 31 Javascript
jquery写出PC端轮播图实例
Jan 26 jQuery
ros::spin() 和 ros::spinOnce()函数的区别及详解
Oct 01 #Javascript
javascript代码调试之console.log 用法图文详解
Sep 30 #Javascript
JS实现表单多文件上传样式美化支持选中文件后删除相关项
Sep 30 #Javascript
微信小程序 Audio API详解及实例代码
Sep 30 #Javascript
微信小程序 Record API详解及实例代码
Sep 30 #Javascript
微信小程序 Image API实例详解
Sep 30 #Javascript
微信小程序 wx.request(object) API详解及实例代码
Sep 30 #Javascript
You might like
PHP的开合式多级菜单程序
2006/10/09 PHP
set_include_path和get_include_path使用及注意事项
2013/02/02 PHP
php生成QRcode实例
2014/09/22 PHP
php将图片保存为不同尺寸图片的图片类实例
2015/03/30 PHP
Symfony控制层深入详解
2016/03/17 PHP
关于hashchangebroker和statehashable的补充文档
2011/08/08 Javascript
深入理解JavaScript系列(42):设计模式之原型模式详解
2015/03/04 Javascript
javascript自定义in_array()函数实现方法
2015/08/03 Javascript
深入理解js数组的sort排序
2016/05/28 Javascript
jQuery实现边框动态效果的实例代码
2016/09/23 Javascript
vue页面使用阿里oss上传功能的实例(二)
2017/08/09 Javascript
利用Three.js如何实现阴影效果实例代码
2017/09/26 Javascript
js array数组对象操作方法汇总
2019/03/18 Javascript
Node.js 获取微信JS-SDK CONFIG的方法示例
2019/05/21 Javascript
Vue使用vue-recoure + http-proxy-middleware + vuex配合promise实现基本的跨域请求封装
2019/10/21 Javascript
vue框架中props的typescript用法详解
2020/02/17 Javascript
浅谈Python 字符串格式化输出(format/printf)
2016/07/21 Python
解决Tensorflow安装成功,但在导入时报错的问题
2018/06/13 Python
pygame游戏之旅 调用按钮实现游戏开始功能
2018/11/21 Python
python分批定量读取文件内容,输出到不同文件中的方法
2018/12/08 Python
Python列表(List)知识点总结
2019/02/18 Python
Python3基本输入与输出操作实例分析
2020/02/14 Python
Windows+Anaconda3+PyTorch+PyCharm的安装教程图文详解
2020/04/03 Python
西班牙汉普顿小姐:购买帆布鞋和太阳镜
2016/10/23 全球购物
Jabra捷波朗美国官网:用于办公、车载和运动的无线蓝牙耳麦
2017/02/01 全球购物
医护人员英文求职信范文
2013/11/26 职场文书
校园达人秀策划书
2014/01/12 职场文书
激情洋溢的毕业生就业求职信
2014/03/15 职场文书
公司晚会策划方案
2014/05/17 职场文书
中国梦演讲稿3分钟
2014/08/19 职场文书
2015年师德师风自我评价范文
2015/03/05 职场文书
公司开会通知
2015/04/20 职场文书
2015年英语教师工作总结
2015/05/20 职场文书
2016元旦主持人经典开场白台词
2015/12/03 职场文书
2016三严三实专题教育活动心得体会
2016/01/06 职场文书
Golang表示枚举类型的详细讲解
2021/09/04 Golang